/*
*编写程序读入一组string类型的数据，并把它们存储在vector中；
*接着把该vector对象赋值给一个字符指针数组。为vector中的每个元素创建一个新的字符数组，并把该vector元素的数据复制到相应的字符数组中；
*最后把指向该数组的指针插入字符指针数组
*/
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
	string strVal;
	vector<string> svec;

	//接收string对象并赋值给vector
	while(cin >> strVal)
	{
		if(strVal == "end")
		{
			break;
		}
		svec.push_back(strVal);
	}

	char **resultCp = new char*[svec.size()];

	int i = 0;
	for(vector<string>::iterator iter = svec.begin(); iter != svec.end(); iter++,i++)
	{
		char *cp = new char[(*iter).size() + 1];
		strcpy(cp, (*iter).c_str());
		resultCp[i] = cp;
	}

	for(int i = 0;i != svec.size();i++)
	{
		cout << *resultCp << " ";
		resultCp++;
	}

	//释放内存
	resultCp -= svec.size();
	for(int i = 0; i != svec.size(); i++)
	{
		delete [] resultCp[i];
	}

	delete [] resultCp;
	resultCp = NULL;

	cout << endl;
	system("pause");
	return 0;
}